#ifndef __NULL_H 	//define header
#define	__NULL_H

#if defined (_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/*Important part
 In C NULL is defined as (void*)0 but in C++ it is defined as 0 
*/

#ifdef NULL
#undef NULL 		//undefine NULL, we do this so that we can define NULL on our own terms
#endif

//do check on c or c++, and define NULL accordingly
			
#ifdef __cplusplus 	
extern "C"
{
#endif
#define NULL 0 		//define NULL as 0
#ifdef __cplusplus
}
#else 			
#define NULL (void*)0 	//define NULL as (void*)0
#endif

#endif